function [ res, Shs ] = superimpose( Users, lenM )

numUsers = size(Users, 1);
len      = size(Users, 2);

Shs = zeros(1, numUsers);
for i = 2 : numUsers
    Shs(i) = Shs(i-1) + randi(lenM);
end

res = zeros( 1, len + Shs(end) );
for i = 1 : numUsers
    res( 1+Shs(i) : len+Shs(i) ) = res( 1+Shs(i) : len+Shs(i) ) + Users(i, :);
end

% полученная смесь
fprintf( '%d ', res ); fprintf('= res\n\n')

for i = 1 : numUsers
    % используемые сдвиги (относительно первого элемента общей последовательности)
    fprintf('%d = sh%d\n', Shs(i), i)
end
fprintf('\n')

end